دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

کلاس - Class

کلاس: Class

کلاس در برنامه‌نویسی شیءگرا یک ساختار یا الگو (Template) است که ویژگی‌ها (داده‌ها) و رفتارها (عملیات یا متدها) یک موجودیت را تعریف می‌کند. از کلاس می‌توان برای ایجاد نمونه‌های قابل استفاده (اشیاء) استفاده کرد یا به‌صورت استاتیک برای سازمان‌دهی کدها و ارائه قابلیت‌های مستقل از نمونه‌سازی به کار برد. کلاس همچنین امکاناتی مثل وراثت (Inheritance)، کپسوله‌سازی (Encapsulation) و چندریختی (Polymorphism) را فراهم می‌کند تا کد سازمان‌یافته‌تر، قابل‌استفاده مجدد و انعطاف‌پذیرتر شود.

یک کلاس دارای اعضایی است که به دو دسته کلی تقسیم می‌شوند:

داده‌ها: شامل فیلدها (Fields) و خصوصیات (Properties) هستند که اطلاعات مربوط به شیء را نگه می‌دارند.

عملکردها: شامل متدها (Methods) و رویدادها (Events) هستند که رفتارها یا عملیات شیء را تعریف می‌کنند.

به‌صورت نمادین:

کلاس = {داده‌ها (فیلدها و خصوصیات) + عملکردها (متدها و رویدادها)}

یک کلاس با استفاده از کلیدواژه class، به دنبال آن یک نام برای کلاس و سپس دو کروشه {} تعریف می‌شود. در مثال زیر، کلاسی به نام MyClass تعریف شده که هنوز هیچ عضوی ندارد و در نتیجه فعلاً کاری انجام نمی‌دهد:

class MyClass

{

}

کانستراکتور (Constructor)

هر کلاس می‌تواند یک یا چند سازنده (Constructor) داشته باشد. سازنده متدی خاص است که هنگام ایجاد نمونه‌ای از کلاس به‌صورت خودکار اجرا می‌شود و معمولاً برای مقداردهی اولیه به داده‌های شیء استفاده می‌شود. اگر شما هیچ سازنده‌ای به‌صورت صریح تعریف نکنید، کامپایلر C# به‌طور خودکار یک سازنده پیش‌فرض (Default Constructor) بدون پارامتر ایجاد می‌کند که هیچ عملی جز ساخت شیء انجام نمی‌دهد.

سازنده با تعیین سطح دسترسی (مثلاً public)، نامی دقیقاً مشابه نام کلاس و علامت () تعریف می‌شود و می‌تواند با پارامتر یا بدون پارامتر باشد. در مثال زیر، سازنده کلاس MyClass بدون پارامتر است:

class MyClass

{

    public MyClass()

    {

        // اینجا می‌توانید کد مقداردهی اولیه بنویسید

    }

}

توجه: برخلاف برخی تصورات، سازنده را نمی‌توان پس از ساخت شیء به‌صورت دستی فراخوانی کرد. سازنده فقط هنگام نمونه‌سازی (با کلیدواژه new) اجرا می‌شود. اگر نیاز به اجرای کد خاصی بعد از ساخت شیء دارید، باید از متدهای معمولی استفاده کنید.

دسترسی به اعضای کلاس

برای دسترسی به اعضای یک کلاس (چه داده‌ها و چه عملکردها)، معمولاً باید ابتدا یک نمونه (Object) از آن کلاس بسازید و سپس از طریق آن نمونه به اعضایش دسترسی پیدا کنید. البته اعضای استاتیک (Static) نیازی به نمونه‌سازی ندارند و مستقیماً از طریق نام کلاس قابل دسترسی‌اند.

در مثال زیر، کلاسی به نام MyClass تعریف شده که شامل یک فیلد غیراستاتیک (nonStaticVariable)، یک فیلد استاتیک (staticVariable) و دو متد است:

using System;

namespace ClassTest

{

    class Program

    {

        class MyClass

        {

            int nonStaticVariable;    // متغیر غیراستاتیک (هر شیء مقدار خودش را دارد)

            static int staticVariable; // متغیر استاتیک (مشترک بین همه اشیاء)

 

            public void SetVars(int v1, int v2)

            {

                nonStaticVariable = v1;

                staticVariable = v2;

            }

 

            public void Display()

            {

                Console.WriteLine("nonStaticVariable = {0}  staticVariable = {1}", nonStaticVariable, staticVariable);

                Console.ReadKey();

            }

        }

         static void Main()

        {

            MyClass d1 = new MyClass(); // ساخت نمونه اول

            MyClass d2 = new MyClass(); // ساخت نمونه دوم

 

            d1.SetVars(2, 4);

            d1.Display(); // نمایش مقادیر d1

 

            d2.SetVars(15, 17);

            d2.Display(); // نمایش مقادیر d2

        }

    }

}

توضیح مثال:

دو نمونه (d1 و d2) از کلاس MyClass ساخته شده‌اند.

متد SetVars برای هر نمونه مقادیر متفاوتی ست کرده است.

چون nonStaticVariable غیراستاتیک است، هر نمونه مقدار خودش را نگه می‌دارد.

اما staticVariable استاتیک است و بین همه نمونه‌ها مشترک است، بنابراین آخرین مقدار تنظیم‌شده (17) برای هر دو نمونه نمایش داده می‌شود.

خروجی برنامه:

nonStaticVariable = 2                                         staticVariable = 4

nonStaticVariable = 15                                      staticVariable = 17

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.